package com.stridercheng.myjd.tools;

import android.graphics.Bitmap;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.stridercheng.myjd.R;

/**
 * deiscription:
 * User: stridercheng
 * Date: 2015-07-09
 * Time: 20:14
 * FIXME
 */
public class ImageLoaderConfig {

    /**
     * 返回默认的参数配置
     *
     * @param isShowDefault true：显示默认的加载图片 false：不显示默认的加载图片
     * @return
     */
    public static DisplayImageOptions initDisplayOptions(boolean isShowDefault) {
        DisplayImageOptions.Builder builder = new DisplayImageOptions.Builder();
        // 设置图片缩放方式
        // EXACTLY: 图像将完全按比例缩小的目标大小
        // EXACTLY_STRETCHED: 图片会缩放到目标大小
        // IN_SAMPLE_INT: 图像将被二次采样的整数倍
        // IN_SAMPLE_POWER_OF_2: 图片将降低2倍，直到下一减少步骤，使图像更小的目标大小
        // NONE: 图片不会调整
        builder.imageScaleType(ImageScaleType.EXACTLY);
        if (isShowDefault) {
            // 默认显示的图片
            builder.showImageOnLoading(R.drawable.no_image);

            // 地址为空的默认显示图片
            builder.showImageForEmptyUri(R.drawable.no_image);

            // 加载失败的显示图片
            builder.showImageOnFail(R.drawable.no_image);
        }
        //开启内存缓存
        builder.cacheInMemory(true);

        //开启sdcard缓存
        builder.cacheOnDisk(true);

        builder.bitmapConfig(Bitmap.Config.RGB_565);
        return builder.build();
    }

    /**
     * 返回修改图片大小的加载参数配置
     *
     * @return
     */
    public static DisplayImageOptions initDisplayOptions(int targetWidth,
                                                         boolean isShowDefault) {
        DisplayImageOptions.Builder displayImageOptionsBuilder = new DisplayImageOptions.Builder();
        // 设置图片缩放方式
        // EXACTLY: 图像将完全按比例缩小的目标大小
        // EXACTLY_STRETCHED: 图片会缩放到目标大小
        // IN_SAMPLE_INT: 图像将被二次采样的整数倍
        // IN_SAMPLE_POWER_OF_2: 图片将降低2倍，直到下一减少步骤，使图像更小的目标大小
        // NONE: 图片不会调整
        displayImageOptionsBuilder.imageScaleType(ImageScaleType.EXACTLY);
        if (isShowDefault) {
            // 默认显示的图片
            displayImageOptionsBuilder.showImageOnLoading(R.drawable.no_image);
            // 地址为空的默认显示图片
            displayImageOptionsBuilder
                    .showImageForEmptyUri(R.drawable.no_image);
            // 加载失败的显示图片
            displayImageOptionsBuilder
                    .showImageOnFail(R.drawable.no_image);
        }
        // 开启内存缓存
        displayImageOptionsBuilder.cacheInMemory(true);
        // 开启SDCard缓存
        displayImageOptionsBuilder.cacheOnDisk(true);
        // 设置图片的编码格式为RGB_565，此格式比ARGB_8888快
        displayImageOptionsBuilder.bitmapConfig(Bitmap.Config.RGB_565);
        // 设置图片显示方式
        displayImageOptionsBuilder.displayer(new SimpleImageDisplayer(
                targetWidth));

        return displayImageOptionsBuilder.build();
    }
}  
